
#ifndef __CE_VFS_H__
#define __CE_VFS_H__

#include <export.h>
#include <string>
#include <ifile.h>

/**
 * \addtogroup engine
 * @{
 */

/**
 * @brief A simple virtual file system.
 */
class CE_API ceVFS
{
private:
  static ceVFS*	static_instances;

	std::string		_rootPath;

  ceVFS();
public:
  static ceVFS* Get ();

	void SetRootPath (const std::string& rootPath);

	/**
	 * \name Functions for opening files
	 * @{
	 */
  ceRef<iFile> Open (const std::string& filename, ceOpenMode mode = OM_Read, ceTextMode textMode = TM_Binary);
	/**
	 * @}
	 */
};

/** @} */

#endif /* ! __CE_VFS_H__ */

